package tnp.model;

import org.apache.wicket.Request;
import org.apache.wicket.Session;
import org.apache.wicket.authentication.AuthenticatedWebSession;
import org.apache.wicket.authorization.strategies.role.Roles;

import com.google.inject.Inject;
import com.google.inject.assistedinject.Assisted;

/**
 * セッションオブジェクト
 *
 *
 */
public class SessionObject extends AuthenticatedWebSession
{

    private static final long serialVersionUID = 1L;

    /** ユーザ名 */
    private String userName;

    /** サイトURL */
    private String siteURL;

    /** ログインID */
    private String loginID;

    /** 認証トークン  */
    private String attestationToken;

    private Roles roles;

    public static SessionObject get()
	{
        return (SessionObject) Session.get();
    }

    @Inject
    public SessionObject(@Assisted Request request) 
	{
        super(request);
        userName = "";
        siteURL = "";
        loginID = "";
        attestationToken = null;
        dirty();
    }

    /** ユーザ名 */
    public String getUserName() 
	{
        return userName;
    }

    /** ユーザ名 */
    public void setUserName(String userName) 
	{
        this.userName = userName;
        dirty();
    }

    /** サイトURL */
    public String getSiteURL() 
	{
        return siteURL;
    }

    /** サイトURL */
    public void setSiteURL(String siteURL) 
	{
        this.siteURL = siteURL;
        dirty();
    }

    /** ログインID */
    public String getLoginID() {
        return loginID;
    }

    /** ログインID */
    public void setLoginID(String loginID) 
	{
        this.loginID = loginID;
        dirty();
    }

    /** 認証トークン  */
    public String getAttestationToken() 
	{
        return attestationToken;
    }


    /** 認証トークン  */
    public void setAttestationToken(String apiAttestationToken) 
	{
        this.attestationToken = apiAttestationToken;
        signIn(apiAttestationToken != null);
        dirty();
    }

    @Override
    public boolean authenticate(String username, String password) 
	{
    	return true;
    }

    @Override
    public Roles getRoles() 
	{
        if (isSignedIn()) {
            if (roles == null) {
            }
            return roles;
        }
        return null;
    }
}
